package com.wn.sddfp.client.bank;

import com.wn.common.model.bank.dto.BankCardAddDTO;
import com.wn.common.model.bank.dto.BaseResult;
import com.wn.common.model.bank.dto.SignatureDto;
import com.wn.common.model.borrow.BorrowSyncRecordVo;
import com.wn.common.result.Result;
import com.wn.sddfp.client.bank.fallback.TradeLogApiFallBack;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * @author yellow Docter
 * @date 2024-09-06
 * @desc 蜗牛创想：www.woniuxy.com
 *  通过 TradeLogApi 这接口 调用   bank-access 的这个服务
 *
 *  1、指定调用服务
 *         一定要是 nacos中的服务列表存活的服务
 *  2、调用指定的服务的方法
 *       1、请求的方法的 请求方式 和 url 和服务提供的方法需要保持一致
 *       2、proxyBindCardLog 和 服务提供者的名称需要保持一致
 *       3、请求的方法的 的参数 和 服务提供者的参数保持一致
 *       4、请求的方法的 的返回结果 和 服务提供者的返回结果一致
 *
 */
@FeignClient(
        value = "sddfp-bank-access-service",    //设置  服务提供者
        path = "/trade-log",
        fallback = TradeLogApiFallBack.class    //设置远程调用事变的回调 (服务降级)
)
public interface TradeLogApi {

    @PostMapping("/bank/access/card")
    public SignatureDto proxyBindCardLog(@RequestBody BankCardAddDTO bankCardAddDTO);

    @PostMapping("/bank/access/status")
    public Result<BaseResult> syncBorrowRecord(@RequestBody BorrowSyncRecordVo borrowSyncRecordVo);
    
}
